package cn.four.hqServer.modules.userregister.utils;

import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author quest
 * @data 2022-05-03 21:27
 */
public class CopyUtils {
    /**
     * 单体复制
     * @param source 被复制
     * @param clazz  被复制的类型
     * @param <T>
     * @return
     */
    public static <T> T copy(Object source,Class<T> clazz){
        if (null==source){
            return null;
        }
        T obj=null;
        try {
            obj =clazz.newInstance();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        BeanUtils.copyProperties(source,obj);
        return obj;
    }

    /**
     * 列表复制
     * @param source 被复制的列表
     * @param clazz  被复制的类型
     * @param <T>
     * @return
     */
    public static <T> List<T> copyList(List source, Class<T> clazz) {
        ArrayList<T> target = new ArrayList<>();
        if (!CollectionUtils.isEmpty(source))
            for (Object c:source){
                T obj = copy(c, clazz);
                target.add(obj);
            }
        return target;
    }
}
